
// 引入用户集合的构造函数
const { Users, validateUser } = require('../../model/user');

// 验证用户信息
module.exports = async (req, res, next) => {
    try {
        await validateUser(req.body);
    } catch (e) {
        // 验证未通过 重定向回当前页面并加上错误信息
        // res.redirect(`/admin/user-edit?message=${e.message}`);
        // JSON.stringify() 将对象数据类型转换为字符串数据类型
        // next()只能传递字符串
        return next(JSON.stringify({ path: '/admin/user-edit', message: e.message }));
    }

    // 根据邮箱地址查询用户是否存在
    let user = await Users.findOne({ email: req.body.email });
    //  如果用户存在说明邮箱地址已经被注册过了
    if (user) {
        // 重定向
        // return res.redirect('/admin/user-edit?message=邮箱地址已经被注册');
        // JSON.stringify() 将对象数据类型转换为字符串数据类型
        // next()只能传递字符串
        return next(JSON.stringify({ path: '/admin/user-edit', message: '邮箱地址已经被注册' }));

    }
    // 将用户信息添加到数据库中
    await Users.create(req.body);
    // 将页面重定向到用户列表页面
    res.redirect('/admin/user');
}